home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-08-18 | 735 b | 39 lines | [TEXT/R*ch] |
- type person = {name: string, age: int};
- val p1 : person = {name = "Peter", age = 99};
- val {name=name1, age=age1} = p1;
- fun nameOfPerson {name=x, age=_} = x;
- val name1 = nameOfPerson p1;
- val {name,age} = p1;
-
- val {name,...}:person = p1;
- val {name : string as name1,...} = p1;
-
- val f = fn {name=x,...}:person => x;
-
- val name1 = #name p1;
- val age1 = #age p1;
-
- fun f {lab=v} = v+1;
-
- fn _ => (* to cheat value polymorphism *)
- let
- fun eq r1 r2 = (#l1 r1) = (#l1 r2)
- val t = eq {l1 = 1, l2 = 3}
- {l1 = 1, l3 = "a"}
- in
- (eq, t)
- end;
-
- (printVal (it ()); ());
-
- fn _ =>
- let
- val f = fn {l1 = x,...} => x
- val g = fn {l1 = x, l2 = y} => (x,y)
- val h = fn x => (x=x, f x, g x)
- in
- (f, g, h)
- end;
-
- (printVal (it ()); ());
-